<?php
namespace app\test\controller;
use app\test\model\User;
use think\Controller;
use think\Request;
use think\Db;
use think\Cookie;

use \traits\controller\Jump;
/**
 * 
 * @author Administrator
 *
 */
class Login extends Controller{
    

/**
 * 用于测试验证码是否正确
 * @param string $code  用户输入的验证码
 * @return boolean
 */
    public function check($code=''){
      //  $captcha=new \think\captcha\Captcha();
       // $captcha = new \think\captcha\Captcha();
               
       // if (!$captcha->check($code)) 
        if(!captcha_check($code))
        {
           // $this->error('验证码错误');
            return false;
        } else {
          //  $this->success('验证码正确');
            return true;
        }
    }
 
    /**
     * 做登陆验证
     * 首先，判断验证码是否正确，验证码不正确的时候， 弹出error验证码错误信息，返回登陆界面
     *       验证码正确的话，
     *       测试用户名、密码是否正确
     *           正确的话，登陆成功，设置cookie，保存登陆信息
     *           不正确的话，输出，用户名或密码不正确，重新登陆
     * @param Request $request
     */
    public function doLogin(Request $request){
        
       
        $code=$request->param('code');
      //  echo "验证码测试：";
        if(!$this->check($code))
        {
            $this->error('验证码错误');
            return;
          //  echo "验证码是不正确的";
          //  return;
        }
     
        
        echo "验证码通过：";
       // dump($request->param());
        
        $name=$request->param('name');
        $password=$request->param('password');
        

        
        $result=Db::name('user')
        ->where('name',$name)
        ->where('password',$password)
        ->find();
        
/*         $count=Db::name('user')
        ->where('name',$name)
        ->where('password',$password)
        ->count(); */
        
      // dump($request);
/*        echo "Test: ";
       echo  $count; */
        
       
     //  echo $name;
       
      if(count($result)>0)
        {
            echo "成功登陆";
            
            $adminID=Db::name('user')
            ->where('name',$name)
            ->where('password',$password)
            ->value('id');
            
           // echo $adminID;
            
            Cookie::set('adminName',$name,3600);
            Cookie::set("adminID",$adminID,3600);
            
            
            $this->success('欢迎登陆！','index\login\hello',$name);
            
          //  Cookie::set('adminId',$request->)
            
        }else{
            echo "用户名或密码错误";
        } 
        
 
/*         
        $user=User::get(['name'=>$name]);
        echo $user->name.'<br \>';
        echo $user->password.'<br \>'; */
//         if($user){
//             echo "成功登陆";
//         }else{
//             echo "登录名或密码错误";
//         }
        
    }
    
/** 用户登陆界面
 * 
 * 首先根据cookie中记录,判断是否已经登陆
 * 如果已经登陆，则直接跳转操作界面
 * 如果还没有登陆
 * 则：
 * 调出登陆界面的模板，在其中输入用户名、密码、验证码等信息 
 * 进行提交 验证。
 * 
 * 处理模板的函数为doLogin
 *
 * 
 * @param Request $request
 */
    public function admin(Request $request){
        

        $adminName=$request->cookie('adminName');//Cookie::get('adminName');
        $adminID=$request->cookie('adminID');//Cookie::get('adminID');
        
        
        
/*         echo "Test Cookie:".'<br />';
        echo $adminName.'<br />';
        echo $adminID.'<br />'; */
         
        if($adminName&&$adminID)
        {
            $result=Db::name('user')
            ->where('name',$adminName)
            ->where('id',$adminID)
            ->find();
        
          // dump($result);
           
            if(count($result)>0){
                
/*                 echo count($result);
                echo "dd"; */
                
             //   $this->assign('name',$adminName);
             //   return $this->fetch('hello');
                
                $this->success('欢迎重新归来！','index\login\hello',$adminName);
             //   return;
            }
        
        }else
        
        
        return view();
        
    }
    
    
    public function hello(Request $request)
    {
        $this->assign('name',$request->cookie('adminName'));
        
        
        return $this->fetch('hello');
        
       // return 'hello';
       // return view();
    }
}


